<?php if (!defined('DB_PEREFIX')) exit;

global $db, $GLOBAL_USER, $_POST; 

// Если голосующий пользователь не существует или не прислана цель голосования
if (!isset($GLOBAL_USER)) exit;

// Пытаемся загрузить пользователя за которого голосуют
$id = intval($_POST['user_id']);
$get_user = $db->query ("SELECT user_id, user_karma, karma_votes, voters FROM ".DB_PEREFIX."_users WHERE user_id = '$id'");

// Если пользователь существует то загружаем его карму
if ($db->num_rows($get_user) != 1) exit;
list($target_id, $karma, $votes, $voters) = $db->fetch_row($get_user);

// Если карма голосующего меньше ноля и он не администратор то выходим
if ($GLOBAL_USER['user_karma'] < 0 && $GLOBAL_USER['user_group'] != 'admin') exit;


// Определяем вес голоса
$unit = 1;
if ($GLOBAL_USER['user_karma'] > 20 || $GLOBAL_USER['user_group'] == "admin") $unit = 2;
if ($GLOBAL_USER['user_karma'] > 50)	$unit = 3;
if ($GLOBAL_USER['user_karma'] > 100)	$unit = 4;

// Добавляем случайную дробную часть
$unit = $unit.'.'.mt_rand(0,50);

// Максимальный вес голоса равен 5
if ($unit > 5) $unit = 4;

// Применяем вес голоса на карму цели
if ($_POST['value'] == 1)		$new = $karma + $unit;
elseif ($_POST['value'] == 2)	$new = $karma - $unit;
else die('Либо за, либо против ;)');


// Добавляем голос
$votes = $votes + 1;
$new = number_format($new, 2, '.', '');

$voters_id = array($target_id);
// TODO: Добавить проверку на голосовавших
$made_votes = explode(',', $voters);
foreach ($made_votes as $vote)
{
	list ($who, $how) = explode('=', $vote);
	if ($who == $GLOBAL_USER['user_id']) exit('Вы уже голосовали!');

	if ($who != '')
		$voters_id[] = $who;
}


// FIXME: Переделать систему голосования
// Обновляет список голосовавших
($voters == '') 
	? $new_voters = $GLOBAL_USER['user_id'].'='.$_POST['value'] 
	: $new_voters = $voters.','.$GLOBAL_USER['user_id'].'='.$_POST['value'];

// Обновляем профиль пользователя
if ($db->query('UPDATE '.DB_PEREFIX."_users SET user_karma = '$new', karma_votes = '$votes', voters = '$new_voters' WHERE user_id = '$id'")) 
{
	// FIXME: Переделать систему голосования
	// Добавляет запись о голосовании в профиль голосовавшего
	//($GLOBAL_USER['my_votes'] == '') 
	//	? $new_votes = $id 
	//	: $new_votes = $GLOBAL_USER['my_votes'].','.$id;
		
	//$db->query('UPDATE '.DB_PEREFIX."_users SET my_votes = '$new_votes' WHERE user_id = ".$GLOBAL_USER['user_id']);
	
	// Формируем данные для представления
	$data = array(
					'karma'		=> $new,
					'user_id'	=> $target_id,
					'voted'		=> 1,
					'votes'		=> count($voters_id),
					'ajax'		=> true
				);

	// Выводим представление 
	load_module_view('user', 'user_karma',  $data);
}

exit;

?>
